1. Field of the Invention
The present invention relates to a method of information processing and storage. It involves the fields of parallel and distributed processing and video processing technologies, and a distributed storage method of the clips of source files suitable for cluster video servers.
2. Description of the Related Art
With the development of the broadband network, audio and video encoding technologies, streaming media and rich media are more and more widely used. For these types of applications, one of the most important infrastructures is the video server. In order to meet the practical needs, the video server has high requirements for performance. The streaming media services are always characterized by large data volume and strict real-time requirements. The general single server architecture can only serve dozens of clients due to the bottleneck caused by a CPU, a memory, a network and a hard disk, and is not applicable for streaming media services that are intended for serving a large number of users, while the high performance servers are very expensive.
Due to the high scalability and low cost of clusters, the cluster-based technologies provide a technical foundation for the implementation of video servers. Remarkable characteristics of clusters include the decentralization of storage units, the autonomy of individual nodes and centralized control. Based on these characteristics, the cluster video servers have attracted more and more attention in academic communities and the industry.
One of the key technologies of the cluster video server is to realize the distributed storage of the films. Each movie needs to be split according to some specific methods so that it can be distributed among the storage nodes of a cluster. Hence, it is very important to find a distributed storage method with high efficiency and high availability for the splitting of movies.
There are two typical solutions for the storage of movies. One is based on the playtime of the movies: dividing the movie into several parts with the same time length (P. Shenoy, P. Goyal, and H. M. Vin, “Issues in Multimedia Server Design”, ACM Computing Survey, Vol. 27, No. 4, pp.636-639, December 1995). The other is based on the size of the movies: dividing the movie into several parts with the same file size (P. Shenoy and H. M. Vin. “Efficient Striping Techniques for Multimedia File Server”, Proceedings of the 7th International Workshop on Network and Operating System Support for Digital Audio and Video (NOSSDAV '97), pp. 25-36, May 1997).
The former one is based on the same time length and the latter is based on the same space. Both of these methods have some problems. It is difficult to realize the splitting strategy based upon the same time. There are two reasons for this. On the one hand, both the compression ratio and storage formats of each media format are totally different. On the other hand, in the files of the same media format, the scene changes among different phases are not predictable so that the storage space of the media data with the same time length is different. Furthermore, this method is not general enough to process completely different media formats. For the splitting strategy based upon one same space size, random access cannot be easily processed. Because it is possible that different media streams in one movie will not be synchronized in some clips, quality problems will result when playing back the movie. Additionally, this method needs synchronous processes of two consecutive clips across two storage nodes. This process decreases the performance of the system processing multiple streams simultaneously. On the other hand, it increases the difficulties of implementing the interface module of the media data in the video servers and the internal communication traffic between control nodes and data nodes.
The implementation of the two methods described above generally includes four modules: one client information obtaining module, one clip files definition module, one module of obtaining streaming media files information and one media files splitting module. The meanings of these modules in the two methods are distinguished. Consider the client information obtaining module, its main function is to obtain the splitting requirements of the clients. In the splitting method based upon time, it obtains the time length of each clip. While in the splitting method based upon space, it obtains the space length of each clip.